Protocol Independent Multicast (PIM) is a collection of multicast routing protocols. One of the main PIM protocols is PIM Sparse Mode (PIM-SM). PIM-SM is suited for a multicast group that will be sparsely distributed throughout a network. To receive multicast data using PIM-SM, a router must send to its upstream neighboring routers a request to join particular groups and sources. Routers use PIM Join messages to join multicast distribution trees and PIM Prune messages to leave them.
PIM-SM supports the use of source-based trees, in which a separate multicast distribution tree is built for each source that sends data to a multicast group. Each source-based tree is rooted at a router adjacent to the source, which sends data directly to the root of the tree. Source-based trees enable the use of Source Specific Multicast (SSM). With SSM, a host identifies a multicast data stream in a Join message by a source (S) and group (G) address pair (S, G).
A problem may occur when setting up a source-based tree if the next hop to reach the source of the multicast tree is reachable via a unidirectional tunnel. This may occur when part of the path between a host requesting an SSM Join and the source specified in the Join message is over an Interior Gateway Protocol (IGP) shortcut. For example, the next hop could be a router at the far-end of a unidirectional tunnel. In that case, PIM would not be able to establish the tree because it could not setup a neighboring relationship with the router at the next hop address since for that PIM would need a bi-directional tunnel.
One solution to the first aforementioned problem is to let the IGP protocols such as Open Shortest Path First (OSPF) and Intermediate System to Intermediate System (ISIS) completely resolve the IGP shortcut route and provide the immediate next hop. However, this solution will not work if the core of the network does not have a route to reach the source of the multicast tree. In cases where such a route does exists, the solution should work but it would disadvantageously use resources that may already be in critical demand such as those that perform path calculations for the IGP protocols.
Therefore, an efficient and reliable way of establishing source-based multicast trees is desired.